/**
 * 
 */
package com.xpec.c4.game.datamanager;

import java.lang.reflect.Method;

/**
 * 從 DC 返回時的 callback function 相關資訊
 * <p>
 * 寫共用功能時，例如共用的向 dc 要求扣錢、扣物品... ，dc 執行完畢返回後會先呼叫指定的預處理 callcack
 * 預先將變更後的結果套回角色身上再去呼叫外部指定的 callback 接回原本的遊戲邏輯，如果是不需要做預處理的請求就不用指定預處理 callback。
 * 
 * @author TW15010
 */
public class CallbackMethodInfo {
	/** DataManager 實體 */
	private DataProcessCallback callback;

	/** 預處理 callback function 所在的 class 實體 */
	private Object classOfPreProcMethod;

	/** 預處理 callback function */
	private Method preProcMethod;

	/** callback function 所在的 class 實體 */
	private Object classOfMethod;

	/** callback function */
	private Method method;

	/** callback function 夾帶的使用者自訂參數 */
	private Object[] userData;

	public DataProcessCallback getCallback() {
		return callback;
	}

	public void setCallback(DataProcessCallback callback) {
		this.callback = callback;
	}

	public Object getClassOfMethod() {
		return classOfMethod;
	}

	public void setClassOfMethod(Object classOfMethod) {
		this.classOfMethod = classOfMethod;
	}

	public Method getMethod() {
		return method;
	}

	public void setMethod(Method method) {
		this.method = method;
	}

	public Object[] getUserData() {
		return userData;
	}

	public void setUserData(Object[] userData) {
		this.userData = userData;
	}

	public Object getClassOfPreProcMethod() {
		return classOfPreProcMethod;
	}

	public void setClassOfPreProcMethod(Object classOfPreProcMethod) {
		this.classOfPreProcMethod = classOfPreProcMethod;
	}

	public Method getPreProcMethod() {
		return preProcMethod;
	}

	public void setPreProcMethod(Method preProcMethod) {
		this.preProcMethod = preProcMethod;
	}
}
